The present invention is directed to a method and apparatus for streaming semantics from a server to a plurality of client computers. More particularly, the resent invention is directed to a method and apparatus for streaming semantics from a server to a plurality of client computers which results in a multimedia output at the client computers that can vary in content among the client computers.
Streaming multimedia data from a server computer to a client computer is a known way to create a multimedia output at a client computer. Multimedia data includes audio, textual, and graphical (including video) data. Streaming data involves sending a continuous transmission of data from the server to the client. At the client computer, received data is buffered in a cache memory and continuously processed as soon as, or soon after, being received by the client. The client computer processes the data by creating a multimedia output from the received multimedia data. The advantage of streaming is that the client computer does not have to wait until all data is downloaded from the server before some of the data is processed and the multimedia output is created.
An example of multimedia data streaming is found in the RealAudio.RTM. audio player that is available over the Internet at Universal Resource Locator ("URL") http://www.realaudio.com. RealAudio.RTM. continuously sends audio data over the Internet from a server computer to client computers. The audio data is buffered and processed by the client computers while the data is being sent. The client computer processes the data by creating an audio output from the audio data.
One problem with existing methods of creating remote multimedia outputs at client computers using streaming of multimedia data is that multimedia data, especially audio and graphical data, requires a large amount of data for a desired output. For example, five minutes of uncompressed audio output at a client computer requires streaming approximately 4.7 megabytes of data. Streaming five minutes of video output, which includes both graphical, audio and textual data, would require even more data. Therefore, a large bandwidth is required to send multimedia data from a server to a client. Without the availability of a large bandwidth, the transmission of the data is delayed, and the streaming of the data in "real time" will not occur because the client computer will process data much faster than it receives it.
A second problem with existing methods of creating remote multimedia outputs at client computers using streaming of multimedia data is that when multiple client computers process a single set of data streamed from a server computer, the resultant multimedia output at each client computer is identical. For example, if an animated sequence is sent from a server computer to client computers, the display of the animated sequence at all client computers is identical. However, it may be desirable for the display of the animated sequence to be tailored for different client computers. For example, it may be desirable for one client computer to display an animated sequence using dogs as characters in the sequence, and another client computer to display an animated sequence using cats. Using existing methods of streaming multimedia data, this option is not available.
Based on the foregoing, there is a need for a method and apparatus for creating a multimedia output at client computers using information streamed from a server computer that uses less bandwidth than existing methods, and for enabling multiple client computers to create different multimedia outputs using the same received information from the client computer.